import { createApp } from 'vue';
import App from './App.vue';
import i18n, { initI18n, smartTranslate } from '@/lang';
import setupPlugins from '@/plugins';

// 本地SVG图标
import 'virtual:svg-icons-register';

// 样式
import 'element-plus/dist/index.css';
import 'element-plus/theme-chalk/dark/css-vars.css';
import '@vxe-ui/plugin-render-element/dist/style.css';
import '@/styles/index.scss';
import 'uno.css';
import 'animate.css';
import 'vxe-table/lib/style.css';
import 'vxe-pc-ui/lib/style.css';
import '@kangc/v-md-editor/lib/style/preview.css';
import '@kangc/v-md-editor/lib/theme/style/github.css';

const app = createApp(App);
// 注册插件
app.use(setupPlugins);
// 注册多语言
app.use(i18n);
// 注册通用翻译函数
app.config.globalProperties.$t = smartTranslate;

// 初始化i18n并启动应用
async function bootstrap() {
  try {
    // 初始化多语言
    await initI18n();

    // 挂载应用
    app.mount('#app');

    console.log('应用启动成功');
  } catch (error) {
    console.error('应用启动失败:', error);

    // 即使i18n初始化失败，也要启动应用
    app.mount('#app');
  }
}

// 启动应用
bootstrap();
